package com.greenold.Appointment.task;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.greenold.common.core.domain.AjaxResult;
import com.greenold.Appointment.service.IAppointmentService; // 你的业务Service

/**
 * 每天零点执行的定时任务
 */
@Component // 注入Spring容器，必须添加
public class ZeroPointTask {

    // 注入业务Service（如果接口是本地的，优先调用Service，避免HTTP请求）
    @Autowired
    private IAppointmentService appointmentService;

    /**
     * 定时任务方法：每天零点执行
     * cron表达式：0 0 0 * * ? （秒 分 时 日 月 周）
     */
    @Scheduled(cron = "0 0 0 * * ?") // 关键注解：指定执行时间
    public void callZeroInterface() {
        try {
            // 调用Service中与接口/appointment/appointment/zero对应的方法
            // （假设你的Controller中该接口调用的是appointmentService.zero()）
            appointmentService.updateCancelCountToZero();
            // 打印日志（建议用logback，这里简化为System.out）
            System.out.println("零点任务执行成功");
        } catch (Exception e) {
            System.err.println("零点任务执行失败：" + e.getMessage());
            e.printStackTrace(); // 实际项目中用日志框架记录异常
        }
    }
}